// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
#pragma once
#include "../OracleSQLObjectImpl.h"

class OracleSelectRestriction : virtual public OracleSQLObjectImpl
{
public:
  SQLName_ptr constraint;

  OracleSelectRestriction();
  SHAREDOBJECT(OracleSelectRestriction);

  SQLName_ptr getConstraint();

  void setConstraint(SQLName_ptr constraint);
};

class OracleSelectRestriction_CheckOption : virtual public OracleSelectRestriction
{
public:
  OracleSelectRestriction_CheckOption();

  SHAREDOBJECT(OracleSelectRestriction_CheckOption);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  // @Override
  SQLObject_ptr clone();
};

class OracleSelectRestriction_ReadOnly : virtual public OracleSelectRestriction
{
public:
  OracleSelectRestriction_ReadOnly();

  SHAREDOBJECT(OracleSelectRestriction_ReadOnly);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  // @Override
  SQLObject_ptr clone();
};
